;!function (win) {

    var sp = {
        lngRegulation : /^-?((0|1?[0-7]?[0-9]?)(([.][0-9]{1,15})?)|180(([.][0]{1,15})?))$/,
        latRegulation : /^-?((0|[1-8]?[0-9]?)(([.][0-9]{1,15})?)|90(([.][0]{1,15})?))$/,
        checkValue :checkValue,
        checkLocation : checkLocation,
        registerClickEvent : registerClickEvent,
        updateMapCoordinates : updateMapCoordinates
    };

    //空值校验(空值则返回false)
    function checkValue(data) {
        if (data != undefined && data != "null") {
            data = data.toString().replace(/\s+/g, "");
            return data.length == 0 ? false : true;
        }
        return false;
    }

    //坐标值校验（不符合经纬度规范则返回false）
    function checkLocation(lat,lng){
        if(sp.checkValue(lat)&&sp.checkValue(lng)&&sp.latRegulation.test(lat)&&sp.lngRegulation.test(lng)) {
            return true;
        }
        return false;
    }

    //注册地图点击事件(此js需放到leaflet后)
    function registerClickEvent(){
        map.on('click', function(e) {
            if(marker!=undefined){
                map.removeLayer(marker);
            }
            var lng = e.latlng.lng;
            var lat = e.latlng.lat;
            marker = L.marker([lat,lng]).addTo(map);
            $("#lng").val(lng.toFixed(6)).trigger('change');
            $("#lat").val(lat.toFixed(6)).trigger('change');
            markers.push(marker);
        });
    }

    //更新地图中的坐标点marker
    function updateMapCoordinates(lat,lng){
        if (sp.checkLocation(lat,lng)){
            if(marker!=undefined) map.removeLayer(marker);
            marker = L.marker([lat,lng]).addTo(map);
            markers.push(marker);
        }
    }

    win.sp =  sp;
} (window);

